package com.nondo.dean.auth.service;

import com.nondo.dean.auth.domain.Company;
import com.nondo.dean.common.web.Page;
import com.nondo.dean.common.web.Query;

import java.util.List;

/**
 * project：dean-cloud
 * 公司接口
 *
 * @author linfeng @ nondo
 * @date 2018/4/23
 */
public interface CompanyService {

    /**
     * 根据公司ID查询公司信息
     *
     * @param companyId 公司ID
     * @return 公司信息
     */
    Company findByCompanyId(Long companyId);

    /**
     * 根据公司ID查询公司信息
     *
     * @param parentCompanyId 公司ID
     * @return 公司信息
     */
    List<Company> findByParentCompanyId(Long parentCompanyId);

    /**
     * 根据公司ID删除
     *
     * @param companyId 公司ID
     */
    void deleteByCompanyId(Long companyId);

    /**
     * 保存公司
     *
     * @param company 公司
     */
    void saveAndUpdateCompany(Company company);

    /**
     * 查询所有的公司
     *
     * @return 公司 {@link Company}
     */
    List<Company> findAll();

    /**
     * 分页查询
     *
     * @param query 查询参数
     * @return 分页结果
     */
    Page<Company> findCompanyPage(Query<Company> query);

}
